//
//  BaseModel.swift
//  0229-testKVC
//
//  Created by 王柯佳 on 16/2/29.
//  Copyright © 2016年 wkjsos. All rights reserved.
//

import UIKit

class BaseModel: NSObject {

    
    var userName :String?
    
    var email : String?
    
    var phoneNumber : String
    
    var password : String
    
    override init() {
        
        phoneNumber = "13521774773"
        
        password = "qqqqqq"
        super.init()
    }
    
    
    init(Dictionary : [String : AnyObject]) {
        
        phoneNumber = "13521774773"
        
        password = "qqqqqq"

        super.init()
        
        setValuesForKeysWithDictionary(Dictionary)
    }
    
    /*
        1.为了实现对某些属性的过滤，允许构造方法在不符合某些条件的时候返回一个空对象
        2. 需要在构造方法后加上可选项，并使用 ‘convenience’关键字修饰
        3. 同时需要调用自身的某些Designated的构造方法
        4. 同时convenience构造函数是不能被子类继承的
    */
    
      convenience init?(phoneNumber : String, password : String, userName : String, email : String){
        self.init()

        self.phoneNumber = phoneNumber
        self.password = password
        self.userName = userName
        self.email = email
        
        if 2 > 1{
            return nil
        }
    }
    
    
    /*
        析构函数 类似于dealloc方法，进行类的销毁工作
    */
    
    deinit{
        print("销毁了")
    }
    
    
    override func setValue(value: AnyObject?, forKey key: String) {
        super.setValue(value, forKey: key)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        print("UndefinedKey ---- :\(key)")
    }
    
    
}
